package com.example.hxds.bff.driver.service;

import com.example.hxds.bff.driver.controller.form.*;
import com.example.hxds.common.util.PageUtils;

import java.util.HashMap;


/**
 * 订单服务
 */
public interface OrderService {

    /**
     * 接受新订单
     * @param form
     * @return
     */
    String acceptNewOrder(AcceptNewOrderForm form);


    /**
     * 查询司机当前订单
     * @param form
     * @return
     */
    HashMap searchDriverExecuteOrder(SearchDriverExecuteOrderForm form);


    /**
     * 查询司机当前订单
     * @param form
     * @return
     */
    HashMap searchDriverCurrentOrder(SearchDriverCurrentOrderForm form);


    /**
     * 查询订单信息
     * @param form
     * @return
     */
    HashMap searchOrderForMoveById(SearchOrderForMoveByIdForm form);


    /**
     * 司机到达目的地
     * @param form
     * @return
     */
    int arriveStartPlace(ArriveStartPlaceForm form);


    /**
     * 司机开始行驶
     * @param form
     * @return
     */
    int startDriving(StartDrivingForm form);


    /**
     * 司机结束行驶
     * @param form
     * @return
     */
    int updateOrderStatus(UpdateOrderStatusForm form);


    /**
     * 司机结束订单
     * @param form
     * @return
     */
    int updateOrderBill(UpdateBillFeeForm form);


    /**
     * 司机审核订单
     * @param form
     * @return
     */
    HashMap searchReviewDriverOrderBill(SearchReviewDriverOrderBillForm form);


    /**
     * 查询订单状态
     * @param form
     * @return
     */
    Integer searchOrderStatus(SearchOrderStatusForm form);


    /**
     * 司机支付订单
     * @param driverId
     * @param form
     * @return
     */
    String updateOrderAboutPayment(long driverId, UpdateOrderAboutPaymentForm form);


    /**
     * 司机查询订单
     * @param form
     * @return
     */
    PageUtils searchDriverOrderByPage(SearchDriverOrderByPageForm form);


    /**
     * 司机查询订单
     * @param form
     * @return
     */
    HashMap searchOrderById(SearchOrderByIdForm form);
}
